home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus Extra 1996 #2
/
Amiga Plus CD - 1996 - No. 2 Extra.iso
/
clarissa1_1-demo
/
macros
/
loadin.clssa
< prev
next >
Wrap
Text File
|
1995-01-20
|
8KB
|
321 lines
/***********************************************************************
GADGET: "'Laden'" "1" AUTO TYP: "?"
$DAT >>LoadIn.clssa<< 27.11.1993 - (C) ProDAD Holger Burkarth
20.01.1995 - (C) ProDAD Michael Christoph
************************************************************************/
Options RESULTS
Address clariSSA
ARG InputVar
FailAt 11
AltFail=RESULT
SetPref "SCREENS OFF"
DO FOREVER
WorkAnim2=""
WorkAnim=GetAnimReg("")
IF WorkAnim="" THEN LEAVE
F_NewAnim=1
GetAnimInfo Master
IF RESULT~="" THEN DO
MSRequester "TITLE '*** Laden ***'",
"''",
"'Animationsregister MASTER ist bereits belegt.'",
"PTEXT 'Animation an die MASTER anhängen bzw. erweitern'",
"'MASTER neu anlegen (alte Animation entfernen)'",
"'** Abbruch **'"
IF RC~=0 | RESULT>2 THEN LEAVE
F_NewAnim=0
IF RESULT=2 THEN DO
F_NewAnim=1
CloseAnim Master
IF RC~=0 THEN LEAVE
END
END
GetPref
PARSE VAR RESULT . "NAME" '"'Datei'"' .
PrefFile='"'Datei'"'
Mode_Auto=0
Mode_REQ=0
DO FOREVER
PARSE VAR InputVar com InputVar
IF com="" THEN LEAVE
IF com="AUTO" THEN Mode_Auto=1;
ELSE IF com="REQ" THEN Mode_REQ=1;
ELSE IF com="NAME" THEN DO
PARSE VAR InputVar '"'Datei'"'
PrefFile='"'Datei'"'
END
END
IF Mode_Auto=1 THEN DO
Datei=PrefFile
END
ELSE DO
SetBasicScreen Front
FileSelect "Name" PrefFile "TITLE 'Wählen Sie die zu ladende Datei' PTEXT 'Laden'"
IF RC~=0 THEN LEAVE
Datei='"'RESULT'"'
END
ret=RunA(Datei,F_NewAnim,WorkAnim)
LEAVE
END
SetPref "SCREENS ON"
RequestStatus ON
FailAt AltFail
exit
/*------------------------------------------------
Hauptroutine
-------------------------------------------------*/
RunA: procedure
DO
ARG Datei,F_NewAnim,WorkAnim
IF F_NewAnim=1 THEN F_SetName=1
ELSE F_SetName=0
IF GetVersion()="P" THEN DO
PV=1
SetPref HBComp OFF LaceCompensation ON
END
ELSE DO
PV=0
SetPref LaceCompensation ON
END
DO FOREVER
GetFileInfo "NAME" Datei
IF RC~=0 THEN DO
Message "'Unbekanntes Dateiformat'"
LEAVE
END
PARSE VAR RESULT ."ID" AnimID . "FORMAT" ex ey et "VIEWMODE" eViewMode "FRAMES" frames .
MAnimID=AnimID
IF AnimID='MDHD' THEN F_SetName=0
f_F=0
IF CheckAnimIDChange(AnimID,1)=1 THEN DO
MSRequester "TITLE '*** Laden ***'",
"''",
"'FORMAT: "MAnimID "-" ex ey et eViewMode "'",
"''",
"'Ausgewählte Datei ist keine SSA-Animation.'",
"'Soll die Datei in das SSA-Format umgewandelt werden?'",
"PTEXT 'Umwandlung in SSA'",
"'Ohne Umwandlung einladen'",
"'** Abbruch **'"
IF RC~=0 | RESULT>2 THEN LEAVE
IF RESULT=1 THEN f_F=1
END
IF ( f_F=1 ) | ((F_NewAnim=0) & (AnimID~='MDHD')) THEN DO
F_FrameSeq=0
F_OneFrame=0
IF frames=1 THEN F_SingleFrame=1; ELSE F_SingleFrame=0
IF F_NewAnim=1 THEN DO
IF F_FrameSeq=0 & INDEX(eViewMode,"LACE")>0 THEN DO
IF CheckAnimIDChange(AnimID,2)=1 THEN DO
MSRequester "TITLE '*** Laden ***'",
"''",
"'FORMAT: "MAnimID "-" ex ey et eViewMode "'",
"''",
"'Animation beinhaltet LACE und kann mit'",
"'50/60Hz abgespielt werden.'",
"'Soll die Animation flimmerfrei mit kleineren'",
"'Geschwindigkeiten darstellbar sein, so muß'",
"'der HB-Kompensator zugeschaltet werden.'",
"PTEXT 'normal einladen'",
"'mit HB-Kompensator einladen'",
"'** Abbruch **'"
IF RC~=0 | RESULT>2 THEN LEAVE
IF RESULT=1 THEN SetPref "HBComp OFF LaceCompensation ON"
ELSE IF RESULT=2 THEN SetPref "HBComp ON LaceCompensation OFF"
END
END
IF F_FrameSeq=1 THEN AnimID="ILBM"
ELSE AnimID="SSA "
IF INDEX(eViewMode,"LACE")=0 & AnimID~="ILBM" THEN DO
IF MS_NoLace()=1 THEN LEAVE
END
OpenAnim "MASTER ID" AnimID "FORMAT" ex ey et "VIEWMODE" eViewMode
IF RC~=0 THEN LEAVE
END
IF F_SingleFrame=1 THEN DO
INTRequest "'Geben Sie die Anzahl'",
"'der vorhandenen Bilder ein.' 1"
FrameCount=RESULT
IF RC~=0 | FrameCount<1 THEN LEAVE
LoadAnim "MASTER NAME" Datei "FRAMES" FrameCount
SelectAnim MASTER
SetArea FULL
END
ELSE DO
LoadAnim WorkAnim "NAME" Datei
IF RC~=0 THEN LEAVE
RequestStatus OFF
Record Area
IF RC~=0 THEN LEAVE
CloseAnim WorkAnim
SelectAnim MASTER
END
END
ELSE LoadAnim "MASTER NAME" Datei
IF F_SetName=1 THEN DO
PARSE VAR Datei '"'Datei'"'
IF Length(Datei)>34 THEN Datei=Right(Datei,34)
/*??? SetMAnimList "NAME" "'"Datei"'"*/
END
LEAVE
END
RETURN(RC)
END
/*------------------------------------
Freies Animationsregister ermitteln.
-------------------------------------*/
GetAnimReg: procedure
DO
ARG IReg
WorkAnim=""
DO FOREVER
WorkAnim="SOURCE_A"
IF IReg~=WorkAnim & TestReg(WorkAnim)=0 THEN LEAVE
WorkAnim="SOURCE_B"
IF IReg~=WorkAnim & TestReg(WorkAnim)=0 THEN LEAVE
WorkAnim="SOURCE_C"
IF IReg~=WorkAnim & TestReg(WorkAnim)=0 THEN LEAVE
WorkAnim="SOURCE_D"
IF IReg~=WorkAnim & TestReg(WorkAnim)=0 THEN LEAVE
WorkAnim=""
LEAVE
END
IF WorkAnim="" THEN DO
a=""
WorkAnim="SOURCE_A"
IF IReg~=WorkAnim THEN a=a WorkAnim
WorkAnim="SOURCE_B"
IF IReg~=WorkAnim THEN a=a WorkAnim
WorkAnim="SOURCE_C"
IF IReg~=WorkAnim THEN a=a WorkAnim
WorkAnim="SOURCE_D"
IF IReg~=WorkAnim THEN a=a WorkAnim
SelectAnim a,
"TITLE 'Wählen Sie ein Source-Register zur@Zwischenspeicherung aus.'",
"REQ"
IF RC > 1 THEN BREAK
WorkAnim=RESULT
CloseAnim WorkAnim
IF RC > 1 THEN BREAK
END
RETURN (WorkAnim)
END
TestReg: procedure
DO
ARG Reg
GetAnimInfo Reg
IF RESULT~="" THEN RETURN(1)
RETURN (0)
END
GetVersion: procedure
DO
Information
PARSE VAR RESULT . "VERSION:" cl .
RETURN (cl)
END
CheckAnimIDChange: procedure
DO
ARG ID,Mode
IF Mode=1 THEN DO
/*??? IF ID='MDHD' | ID='SSA ' | ID='SSAD' | ID='SSA5' THEN RETURN(0)*/
IF ID='MDHD' | ID='SSA ' THEN RETURN(0)
ELSE RETURN(1)
END
ELSE IF Mode=2 THEN DO
IF ID='ADO1' THEN RETURN(0)
ELSE RETURN(1)
END
RETURN (0)
END
MS_NoLace: procedure expose MAnimID ex ey et eViewMode
DO
MSRequester "TITLE '*** Laden ***'",
"''",
"'FORMAT: "MAnimID "-" ex ey et eViewMode "'",
"''",
"'Animation beinhaltet kein LACE => NICHT ABSPIELBAR'",
"PTEXT 'Umwandlung in LACE + Korrektur (Verhältnis)'",
"'Umwandlung in LACE (Bild verkleinert sich)'",
"'** Abbruch **'"
IF RC~=0 | RESULT>2 THEN RETURN(1)
IF RESULT=1 THEN DO
SetPref "HBComp OFF LaceCompensation ON"
ey=ey*2
END
ELSE IF RESULT=2 THEN SetPref "HBComp OFF LaceCompensation OFF"
eViewMode=eViewMode "LACE"
RETURN (0)
END